# 或者  通用装饰器

"""
    对于任意函数的调用，都可以获取返回值。只是有些有返回值，有些没有返回值。
    有返回值：函数中有return 数据
        返回值就是数据
    没有返回值：就是表示返回的None
        函数中没有return关键字
        函数中有return，但是retrun后没有数据
"""


# 不管 原函数 有几个参数, 我们都可以装饰

def strong(func):
    def inner(*var, **kwargs):
        print('增强了功能.....')
        res = func(*var, **kwargs)
        return res

    return inner


# @strong
# def test():
#     print('无参..')
#
#
# test()


# @strong
# def test1(a):
#     print('有一个参数...')
#     print('a:', a)
#
#
# test1('hahah')


# @strong
# def test2(a, b):
#     print('有2个参数...')
#     print('a:', a)
#     print('b:', b)
#
#
# test2(2, 'jjjkkk')
@strong
def test3(a, b):
    print('有2个参数...')
    print('a:', a)
    print('b:', b)
    return a


res = test3('你好!', 'jjjkkk')
print('res:', res)
